package com.jielin.handling.mapper.casegoods;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.jielin.handling.entity.unit.OrganizationVo;
import org.apache.ibatis.annotations.Param;

import com.jielin.handling.entity.casegoods.CaseGoods;
import com.jielin.handling.entity.casegoods.CaseGoodsAuditResult;
import com.jielin.handling.entity.casegoods.CaseGoodsAuditResultVo;
import com.jielin.handling.entity.casegoods.CaseGoodsBaseVo;
import com.jielin.handling.entity.casegoods.CaseGoodsVo;
import com.jielin.handling.entity.casegoods.CaseGoodsVoLess;
import com.jielin.handling.entity.casegoods.CaseGoodsVoSpay;
import com.jielin.handling.entity.dict.Dict;
import com.jielin.handling.entity.police.PoliceMan;
import com.jielin.handling.entity.vo.CaseVo;
import com.jielin.handling.entity.vo.GoodsAmountVo;

public interface CaseGoodsAuditResultMapper {
	int deleteByPrimaryKey(String id);

	int insert(CaseGoodsAuditResult record);

	int insertSelective(CaseGoodsAuditResult record);

	CaseGoodsAuditResult selectByPrimaryKey(String id);

	int updateByPrimaryKeySelective(CaseGoodsAuditResult record);

	int updateByPrimaryKeyWithBLOBs(CaseGoodsAuditResult record);

	int updateByPrimaryKey(CaseGoodsAuditResult record);

	List<CaseGoodsAuditResultVo> findCaseGoodsAuditResult(CaseGoodsAuditResult caseGoodsAuditResult);// 查询物品审核列表

	CaseGoodsVo findCaseGoodsById(String id);// 查询物品详细信息

	List<CaseGoodsVoLess> findCaseGoodsByCaseCode(@Param("caseCode") String caseCode,
			@Param("policeCode") String policeCode);// 根据案件编号查询物品详细信息列表

	List<CaseGoodsAuditResultVo> findCaseGoodsLogs(CaseGoodsAuditResult caseGoodsAuditResult);// 查询涉案物品的操作日志

///	List<CaseGoodsVoLessEx> findCaseGoodsLogsById(CaseGoodsAuditResult caseGoodsAuditResult);// 查询涉案物品的详细操作日志
	List<Object> findCaseGoodsLogsById(CaseGoodsAuditResult caseGoodsAuditResult);// 查询涉案物品的详细操作日志

	CaseGoodsBaseVo findCaseInfoByCaseGoodsId(String caseGoodsId);// 根据涉案物品的id查询关联的案件信息

	CaseGoodsBaseVo findCaseInfoByCaseCode(String caseCode);// 根据案件编号查询案件信息

	List<String> findCaseGoodsIdByCaseCode(CaseGoodsAuditResult caseGoodsAuditResult);// 查出该案件下的涉案物品id

	CaseGoodsVoSpay findCaseInfoGoodsById(String id);// 查询涉案财物基本信息

	// LinkedHashMap返回的数据顺序不变
	LinkedHashMap<String, Integer> findCaseGoodsAuditResultPassingRate(CaseGoodsAuditResult caseGoodsAuditResult);

	List<CaseGoods> selectBeOverdue(String[] orgs);// 首页过期查询

	List<GoodsAmountVo> selectLocation(GoodsAmountVo vo);// 首页存放位置数量统计

	HashMap<String, Object> findCaseGoodsTypeRate(@Param("list") List<Dict> list,
			@Param("caseGoodsAuditResult") CaseGoodsAuditResult caseGoodsAuditResult);// 查询所有涉案物品类型的数量

	List<PoliceMan> selectDropList(	@Param("unitcode") String []unitcode,@Param("policeCode") String policeCode);// 物品审核中申请民警/警号下拉框

	List<CaseVo> selectCodeAndName(String unitcode);// 物品审核中名称和案件编号下拉框

	HashMap<String, BigDecimal> findCaseGoodsStatusRate(@Param("list") List<Dict> list,
			@Param("caseGoodsAuditResult") CaseGoodsAuditResult caseGoodsAuditResult);// 查询不同状态的涉案物品的数量

	//根据物品编号查询物品审核数据
	CaseGoodsAuditResult selectAuditResultByGoodsId(String goodsId);

    List<Map<String, Object>> selectLateRemind(String[] array);
}